﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>

//求n的阶乘(使用递归）
//int Func(int n) {
//	if (n == 0)
//		return 1;
//	else
//		return n * Func(n - 1);
//}
//
//int main() {
//	int n = 0;
//	scanf("%d", &n);
//	int c = Func(n);
//	printf("%d", c);
//	return 0;
//}

//(不使用递归)
//int main() {
//	int a = 0;
//	int ret = 1;
//	scanf("%d", &a);
//	for (int i = 1; i <= a; i++) {
//		ret = i * ret;
//	}
//	printf("%d", ret);
//	return 0;
//}


//顺序打印⼀个整数的每⼀位
void Print(int n) {
	if (n > 9)
		Print(n / 10);
	printf("%d ", n % 10);
}


int main() {
	int a = 0;
	scanf("%d", &a);
	Print(a);
	return 0;
}


//求第n个斐波那契数(非递归）
//int main() {
//	int a = 1;
//	int b = 1;
//	int c = 1;
//	int n = 0;
//	scanf("%d", &n);
//	while (n > 2) {
//		c = a + b;
//		a = b;
//		b = c;
//		n--;
//	}
//	printf("%d", c);
//	return 0;
//}

//(使用递归)
//int Fib(int a) {
//	if (a <= 2)
//		return 1;
//	else
//		return Fib(a - 2) + Fib(a - 1);
//		
//}
//
//int main() {
//	int n = 0;
//	scanf("%d", &n);
//	int c = Fib(n);
//	printf("%d", c);
//	return 0;
//}

//递归实现n的k次方
//int Func(int n, int k) {
//	if (k == 1)
//		return n;
//	else
//		return n * pow(n, k - 1);
//}
//
//
//int main() {
//	int n = 0;
//	int k = 0;
//	scanf("%d%d", &n, &k);
//	int a = Func(n, k);
//	printf("%d", a);
//	return 0;
//}

//写一个递归函数DigitSum(n)，输入一个非负整数，返回组成它的数字之和


//int DigitSum(int n) {
//	if (n < 10)
//		return n;
//	else
//		return DigitSum(n / 10) + n % 10;
//}
//
//int main() {
//	int n = 0;
//	scanf("%d", &n);
//	DigitSum(n);
//	printf("%d", DigitSum(n));
//	return 0;
//}


